1
Введение в производительность запросов
DSAI2202Lesson 11: Correct Answer, Terrible Query
00:00

В управлении базами данных получение правильного логического результата — лишь половина задачи; понимание производительности запросов позволяет базе данных вычислять этот результат эффективно, не расходуя системные ресурсы. Запрос может успешно возвращать запрошенные данные, при этом выполняться неэффективно в фоновом режиме.

Учебные цели и контекст

Лекция 11 — Правильный ответ, ужасный запрос: Подчёркивается, что написать рабочий SQL недостаточно; разработчики баз данных должны понимать, как оптимизатор запросов выполняет операции «под капотом».

Введение в производительность запросовНи один из способов доступа не является всегда быстрее — измеряйте на репрезентативной нагрузке.Введение в производительность запросовДва подхода к запросам дают одинаковые выходные данные с разными затратами ресурсов.Введение в производительность запросовAПлан A: СканированиеПолное сканирование таблицы (миллионы строк)Чтение большого числа страниц данныхBПлан B: Поиск по индексуПоиск по индексу (прямой доступ)Выборочный доступ может сократить объём работыВЫХОДНЫЕ ДАННЫЕИтоговая таблица результатовИдентичные выходные данныеНи один из способов доступа не является всегда быстрее — измеряйте на репрезентативной нагрузке.

Основные понятия

  • Логическая корректность против производительности выполнения: Успешное возвращение данных не гарантирует эффективное использование ресурсов. Два функционально идентичных запроса могут дать абсолютно одинаковую таблицу результатов, потребляя при этом совершенно разные объёмы CPU, памяти и дискового ввода-вывода.
  • Влияние на масштабируемость системы: Неоптимизированные запросы становятся узкими местами производительности, замедляя работу одновременных пользователей, увеличивая нагрузку на сервер и не позволяя системе плавно масштабироваться по мере роста базы данных.
  • Пример сценария: Поиск конкретного клиента в таблице с миллионами строк. Плохой запрос вынуждает выполнить полное сканирование за несколько секунд, тогда как оптимизированный запрос извлекает запись за миллисекунды.
Дополнительные заметки
Лекция 11 — Правильный ответ, ужасный запрос: разработчики баз данных должны анализировать планы выполнения, чтобы гарантировать эффективное масштабирование запросов при высоких производственных нагрузках.
Introduction to Query Performance